package com.cskaoyan.config;

import com.alibaba.druid.pool.DruidDataSource;
import lombok.Data;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import javax.sql.DataSource;

/**
 * @author stone
 * @date 2022/04/02 09:51
 */
@Configuration
@ConfigurationProperties(prefix = "db")
@Data
//拼接prefix属性值和成员变量名获得要使用的key，从配置文件中拿到值为成员变量赋值
//赋值使用set方法赋值 → 注意要提供set方法
public class DataSourceConfiguration {

    //看一下成员变量名和配置文件中的key有什么关系
    // db这个前缀 + 成员变量名 = 配置文件中的key
    /*@Value("${db.driver}")
    String driver;
    @Value("${db.url}")
    String url;
    @Value("${db.username}")
    String username;
    @Value("${db.password}")
    String password;*/

    String driver;
    String url;
    String username;
    String password;

    @Bean
    public DataSource dataSource() {
        DruidDataSource dataSource = new DruidDataSource();
        dataSource.setDriverClassName(driver);
        dataSource.setUrl(url);
        dataSource.setUsername(username);
        dataSource.setPassword(password);
        return dataSource;
    }
}
